#ifndef TYPE_H
#define TYPE_H

#include "param_list.h"
#include <stdio.h>

struct type {
	int kind;
	struct param_list *params;
	struct type *rtype;
};

#define TYPE_KIND_CHARACTER	1
#define TYPE_KIND_INTEGER	2
#define TYPE_KIND_STRING	3
#define TYPE_KIND_BOOLEAN	4
#define TYPE_KIND_VOID		5
#define TYPE_KIND_FUNCTION	6

struct type * type_create ( 
  int kind, struct param_list * params, struct type * rtype );

int  type_compare( struct type * a, struct type *b );
void type_print  ( struct type * type );

#endif
